Programmable controllers operate elaborate industrial equipment, such as robots, in accordance with a plurality of stored control programs. When executed, each program causes the programmable controller or robot controller to examine the state of the controlled machinery by evaluating signals from one or more sensing devices (e.g., position encoders, temperature sensors, or pressure sensors) and to operate the machinery (e.g., by controlling the output voltage for servo motors, or energizing/de-energizing discrete components) based on a procedural framework, the sensor signals and, if necessary, more complex processing. As an added complexity, the controlled machinery may further include a moving conveyor system that moves work (e.g. a tool or a part to be serviced by a robot) relative to such robot, requiring additional processing to determine work location relative to the robot to facilitate robotic manipulation of the work.
The programmable controller is generally described as a computer-based control unit that is represented by an aggregate of conventional elements. The control unit also supports one or more user interfaces to facilitate operator input of processing programs, commanded positions, and system parameters. Such user interfaces may include teach pendants that allow a programmer to lead a robot through a desired sequence of events by activating the appropriate pendant button or switch, and may include offline PC simulation devices on which a required sequence of functional and positional steps may be written for simulated execution or for actual test execution in combination with a teach pendant.
When establishing a processing program, it is necessary to establish a physical or geometrical relationship between the robot and work to be serviced by the robot. Users want to understand where in the robot envelope a position can and cannot be reached.
To establish physical or geometrical coordinate points precisely within the robot's working envelope using conventional teach pendant systems, an operator typically manually controls the robot, including a conveyor holding the work, and physically teaches the coordinate points by activating an appropriate pendant button or switch. Essentially, a user must manually move work down a conveyor line and then manually move an associated robot to establish a taught position. Program verification and program touch-up also typically require a user to manually lead or walk a robot through the programmed steps. Programming, program verification and program touch-up are typically performed iteratively and may take significant time.
Undesirably, Cartesian conveyor tracking systems may be difficult to use primarily because robot manipulator joint angle locations can change for a given point on the part. A user may teach a point on the work such that the robot can reach that point. However, if the work is moved using the conveyor, the robot must change its posture/joint angles to touch the same point. Moreover, there is no guarantee that the point on the work can be reached by the robot once the work has been moved. And finally, even if a plurality of positions are taught using a teach pendant in the context of establishing a processing program, the teach pendant itself provides no feedback about the viability and acceptability of a processing program so established. Instead, the processing program must be executed to determine acceptability. If the processing program is determined to be unacceptable, then further iterations of teach pendant programming, verification, and touch-up must occur.
Alternatively, a user may utilize a known offline simulation program to develop a processing program for a robot. During execution of the simulation program, data representative of the simulation may be recorded in external files. The user may then manually review and search the data to determine acceptable physical or geometrical coordinate points within the robot's working envelope. However, such data files may be complex and quite large, so that the process of reviewing and searching the data files may require a level of expertise and may further be time consuming. Moreover, existing simulation programs are not capable of capturing data indicative of position for a robot and associated work and using such data for synchronization of the work and the robot for planning and teaching purposes. Lastly, simulation data must be correlated with actual run-time data from a robotic cell to validate that simulated physical and geometrical points are representative of actual points in the work cell.
It is therefore desirable to develop a system and method for enhancing a visualization of physical or geometrical coordinate points within a robot's working envelope, wherein the system and method overcome the shortcomings of the prior art.